package com.jt.aop;

import com.jt.vo.SysResult;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//@Component
//@Aspect

//@ControllerAdvice   //拦截Controller层的异常
//@ResponseBody       //返回给前端的数据为Json串

@RestControllerAdvice
public class SystemExceptionAOP {

    /**
     * 通过方法 实现程序的控制
     *      1.返回值：响应给用户的数据 SysResult
     *      2.参数信息：使用异常烈性进行接收
     *      3.规则：如果controller层抛出了异常，则将异常信息参数，传递给exception
     *      4.注解支持：@ExceptionHandler  拦截指定的异常类型
     * */

    @ExceptionHandler(RuntimeException.class)
    public SysResult fail(Exception exception){
        //打印异常信息
        exception.printStackTrace();
        return SysResult.fail();
    }

}
